<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>

<body>
  <script>
    // Symbol es6新出的数据类型
    //是由ES6规范引入的一项新特性，它的功能类似于一种标识 唯一性 的ID

    let s1 = Symbol("zhangsan")
    console.log(s1)
    // 应用场景1：使用Symbol来作为对象属性名(key)
    var obj = {
      name: 1,
      age: 2,
      [Symbol('sex')]: "男",
      [Symbol("shengao")]: 188
    }
    console.log(obj)
    // for循环拿不到symbol的key
    console.log(Object.getOwnPropertySymbols(obj))
    // 使用新增的反射API
    console.log(Reflect.ownKeys(obj)) // [Symbol(name), 'age', 'title']
    console.log(Object.values(obj))
    //应用场景2：使用Symbol来替代常量
    // const TYPE_AUDIO = "AUDIO";
    // const TYPE_VIDEO = "VIDEO";
    // const TYPE_IMAGE = "IMAGE";
    const TYPE_AUDIO = Symbol("AUDIO");
    console.log(TYPE_AUDIO)

  </script>
</body>

</html>